-- 配置加载器：根据游戏名称动态加载对应配置
local ConfigLoader = {}

-- 加载指定游戏的配置文件
-- @param gameName 游戏名称(对应config目录下的子目录名)
-- @return 配置表或nil
function ConfigLoader.load(gameName)
    if not gameName or type(gameName) ~= "string" then
        error("无效的游戏名称: " .. tostring(gameName))
    end

    -- 构建配置文件路径: config.游戏名称.config
    local configPath = string.format("config.%s.config", gameName)
    local success, config = pcall(require, configPath)

    if not success then
        error(string.format("加载配置失败: %s (可能未找到游戏配置目录)", configPath))
    end

    -- 验证配置结构是否完整
    if type(config) ~= "table" then
        error("配置文件必须返回一个Lua表")
    end

    -- 添加游戏标识
    config.GAME_NAME = gameName
    config.LOADED_TIME = os.time()

    return config
    
end

return ConfigLoader